Session Initiation Protocol (SIP) is an open signaling protocol for establishing many kinds of real-time communication sessions. Examples of the types of communication sessions that may be established using SIP include voice, video, and/or instant messaging. These communication sessions may be carried out on any type of communication device such as a personal computer, laptop computer, Personal Digital One key feature of SIP is its ability to use an end-user's Address of Record (AOR) as a single unifying public address for all communications. Thus, in a world of SIP-enhanced communications, a user's AOR becomes their single address that links the user to all of the communication devices associated with the user. Using this AOR, a caller can reach any one of the user's communication devices, also referred to as User Agents (UAs) without having to know each of the unique device addresses or phone numbers.
Problematically, however, a user's identity in one network may not be ubiquitous across other networks. For example, a user may have an enterprise identity that is used by the enterprise network to (1) identify the user, (2) identify communication preferences of the user, and (3) extend communication services to the user in accordance with their communication preferences. Unfortunately, if the user does not access the network with their enterprise identity (e.g., via an enterprise device), then the network may be incapable of properly identifying the user and providing the desired communication features to the user. This can create frustrations for the user, especially if the user is working remotely and cannot immediately access an enterprise device but desires access to enterprise communication services.
“Mobile twinning” or “Extension to Cellular” (EC) is but one example of a productivity feature offered by enterprise call controllers. This feature allows external phones (mobile and home) to be twinned (associated) with the office phone numbers. Currently, the enterprise features are extended to the twinned external phones by loosely coupling external numbers (off-PBX telephone numbers) with the enterprise numbers. The implementation of this feature is based on the premise that a single call controller is the sole controller of the features and no other application needs to associate them. In an architecture where the application control is distributed across multiple application servers, the communication infrastructure may invoke more than one application in a sequence to act on a single session request. However, unless these applications are modified to be made aware of the association, they will not be able to invoke the correct feature logic (i.e., provide the desired services). Therefore, the existing solution, where a single application supports the association between the enterprise user's internal and external extensions and the other applications are not aware of this association, does not work well in distributed application architectures.